home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / OS / FWODUtil / Include / FWBArray.h < prev    next >
Encoding:
Text File  |  1995-11-08  |  3.4 KB  |  121 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWBArray.h
  4. //    Release Version:    $ 1.0d11 $
  5. //
  6. //    Copyright:    © 1995 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWBARRAY_H
  11. #define FWBARRAY_H
  12.  
  13. #ifndef   FWAUTODE_H
  14. #include "FWAutoDe.h"
  15. #endif
  16.  
  17. // ----- OpenDoc Includes -----
  18.  
  19. #ifndef _ODTYPES_
  20. #include <ODTypes.h>
  21. #endif
  22.  
  23. #if FW_LIB_EXPORT_PRAGMAS
  24. #pragma lib_export on
  25. #endif
  26.  
  27. //========================================================================================
  28. //    class FW_CByteArray
  29. //========================================================================================
  30.  
  31. class FW_CLASS_ATTR FW_CByteArray FW_AUTO_DESTRUCT_OBJECT
  32. {
  33. //----------------------------------------------------------------------------------------
  34. //    Constructor(s)/Destructor
  35. //
  36. public:
  37.     FW_CByteArray();
  38.     FW_CByteArray(void* buffer, unsigned long byteCount);
  39.     FW_CByteArray(const void* buffer, unsigned long byteCount);
  40.     FW_CByteArray(unsigned long byteCount);
  41.     
  42.     ~FW_CByteArray();
  43.     
  44. //----------------------------------------------------------------------------------------
  45. //    operator(s)
  46. //
  47. public:
  48.     operator ODByteArray*();
  49.  
  50. //----------------------------------------------------------------------------------------
  51. //    New API
  52. //
  53. public:
  54.     void*            GetBuffer() const;
  55.     unsigned long     GetBufferMaximum() const;
  56.     unsigned long     GetBufferLength() const;
  57.     
  58.     void            Set(void* buffer, unsigned long byteCount);
  59.  
  60.     unsigned long     CopyBuffer(void *buffer, unsigned long byteCount);
  61.     void            Clear();
  62.     
  63. private:
  64.     void            PrivDisposeByteArray();
  65. //    void            PrivCopyByteArray(const FW_CByteArray& byteArray);
  66.  
  67. //----------------------------------------------------------------------------------------
  68. //    Non-implemented
  69. //
  70. private:
  71.     FW_CByteArray(const FW_CByteArray& byteArray);
  72.     FW_CByteArray& operator=(const FW_CByteArray& byteArray);
  73.  
  74. //----------------------------------------------------------------------------------------
  75. //    Data Member
  76. //
  77. private:
  78.     ODByteArray        fODByteArray;
  79.     FW_Boolean        fOwnBuffer;
  80.     unsigned long    fOffset;  // allows CopyBuffer to be used piecemeal
  81. };
  82.  
  83. //----------------------------------------------------------------------------------------
  84. //    operator ODByteArray*
  85. //----------------------------------------------------------------------------------------
  86. inline FW_CByteArray::operator ODByteArray*()
  87. {
  88.     return &fODByteArray;
  89. }
  90.  
  91. //----------------------------------------------------------------------------------------
  92. //    FW_CByteArray::GetBuffer
  93. //----------------------------------------------------------------------------------------
  94. inline void* FW_CByteArray::GetBuffer() const
  95. {
  96.     return fODByteArray._buffer;
  97. }
  98.  
  99. //----------------------------------------------------------------------------------------
  100. //    FW_CByteArray::GetBufferMaximum
  101. //----------------------------------------------------------------------------------------
  102. inline unsigned long FW_CByteArray::GetBufferMaximum() const
  103. {
  104.     return fODByteArray._maximum;
  105. }
  106.  
  107. //----------------------------------------------------------------------------------------
  108. //    FW_CByteArray::GetBufferLength
  109. //----------------------------------------------------------------------------------------
  110. inline unsigned long FW_CByteArray::GetBufferLength() const
  111. {
  112.     return fODByteArray._length;
  113. }
  114.  
  115. #if FW_LIB_EXPORT_PRAGMAS
  116. #pragma lib_export off
  117. #endif
  118.  
  119. #endif
  120.  
  121.